class Fish extends Sprite {
  constructor(type) {
    if(type > 7 || type < 1){
      throw new Error('鱼的类型不对，范围为1到7。');
    }
    //鲨鱼的是12帧，其他的鱼是8帧
    let maxFrame = 8;
    if (type == 7 || type == 6) {
      maxFrame = 12;
    }
    let fishData = window.__g_resources.fish[`fish${type}`];
    super({
      image:    fishData.image,
      sx:       fishData.frame.x,
      sy:       fishData.frame.y,
      w:        fishData.frame.w,
      h:        fishData.frame.h,
      speed:    Math.random() + 1,
      rotation: 90,  //鱼在0°的时候，向右移动的；其他的物体，如炮弹在0°的时候向上移动的。
      max_frame:maxFrame,  //鱼游动的时候最大帧，（含挣扎帧）
      max_tick: 10
    });
    this.type = type;
    this.lifeValue = type * 2; //生命值
    this.isFishDie = false;  //标记鱼是否已经死亡？false未死，true已死
  }

  /*
  入参context：canvas.getContext('2d')
  注意点：
    1.鱼在0°的时候，向右移动的；其他的物体，如炮弹在0°的时候向上移动的。
  */
  draw(context){
    this.rotation -= 90;
    super.draw(context);
    this.rotation += 90;
  }

  /*
    鱼挣扎的nextframe设置
  */
  nextFrame(){
    this.tick++;
    if (this.tick == this.max_tick) {
      this.tick = 0;
      this.frame++;
      if(this.frame == (this.isFishDie?this.max_frame:this.max_frame/2)){
        this.frame = (this.isFishDie?this.max_frame/2:0);
        super.setFrame(this.frame);
        return true;  //是否停止动画
      }else {
        super.setFrame(this.frame);
        return false; //是否停止动画
      }
    }
  }
}
